Some applications may need more control over progressive downloads, such as control over individual tracks or media, than is possible with the high-level functions for progressive downloads. These applications can use one or both of the low-level functions for progressive downloads described in this section, MakeTrackTimeTable and MakeMediaTimeTable .
The MakeMediaTimeTable function returns a time table for the specified media.
pascal OSErr MakeMediaTimeTable (
Media theMedia,
long **offsets,
TimeValue startTime,
TimeValue endTime,
TimeValue timeIncrement,
short firstDataRefIndex,
short lastDataRefIndex,
long *retdataRefSkew);
Your application must allocate an unlocked relocatable memory block for the time table to be returned and pass a handle to it in the offsets parameter. The MakeMediaTimeTable function resizes the block to accommodate the time table it returns.
The time table returned by the MakeMediaTimeTable function is a two-dimensional array of long integers, organized as follows:
The number of columns in the table is equal to ( endTime - startTime ) / timeIncrement , rounded up. Because of alignment issues, this value is not always the same as the value of the retdataRefSkew parameter.
When all the data for a movie has been transferred, your application must dispose of the time table created by this function.
The MakeTrackTimeTable function returns a time table for a specified track in a movie.
pascal OSErr MakeTrackTimeTable (
Track trackH,
long **offsets,
TimeValue startTime,
TimeValue endTime,
TimeValue timeIncrement,
short firstDataRefIndex,
short lastDataRefIndex,
long *retdataRefSkew);
Your application must allocate an unlocked relocatable memory block for the time table to be returned and pass a handle to it in the offsets parameter. The MakeTrackTimeTable function resizes the block to accommodate the time table it returns.
The time table returned by the MakeTrackTimeTable function is a two-dimensional array of long integers that is organized as follows:
The number of columns in the table is equal to ( endTime - startTime ) / timeIncrement , rounded up. Because of alignment issues, this value is not always the same as the value of the retdataRefSkew parameter.
If there are track edits for a track, they are reflected in the track's time table.
When all the data for a movie has been transferred, your application must dispose of the time table created by this function.
| Previous | Chapter Contents | Chapter Top |